开源自主导航小车MickX4(八)LeGo 您所在的位置:网站首页 乐高 雷达车 开源自主导航小车MickX4(八)LeGo

开源自主导航小车MickX4(八)LeGo

2024-07-16 08:17| 来源: 网络整理| 查看: 265

开源自主导航小车MickX4(八)LeGo-LOAM 室外3D建图 1 安装 LeGO-LOAM1.1安装依赖项 2 运行 LeGO-LOAM2.1 运行论文demo2.2 修改配置文件2.3 运行自己的bag包2.4 地图保存 3 大范围场景测试3.1 路线13.2 路线24 小结参考资料

1 安装 LeGO-LOAM

LeGO-LOAM [1] 需要依赖 ROS 环境 和 gtsam

1.1安装依赖项

step1 安装 gtsam

wget wget -O ~/software/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip cd ~/software && unzip gtsam.zip -d ~/software/ cd ~/software/gtsam-4.0.0-alpha2/ mkdir build && cd build cmake .. sudo make install

step2 安装 下载编译源码

cd ~/catkin_ws/src git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git cd .. catkin_make -j1

这两步基本没有很大的问题,按照作者给出的指令即可安装成功。

2 运行 LeGO-LOAM 2.1 运行论文demo

LeGO-LOAM 坐在提供了一些bag包,可以通过这些bag包检测我们安装的环境是否正确,还可以查看以下 LeGO-LOAM 的建图效果。 step1 启动 LeGO-LOAM

roslaunch lego_loam run.launch

step2 播放bag包, bag可以在作者的github上[1]下载(可能会很慢),也可以在我们的百度云里面下载。

rosbag play lego-loam-demo-2017-06-08-15-49-45_0.bag --clock --topic /velodyne_points /imu/data 2.2 修改配置文件

在使用速腾16线类雷达的时候注意修改 launch 文件 和 utility.h 配置文件。 LeGO-LOAM 不需要里程计 且 IMU 也不是必须的。 step1 创建 launch 文件 mickx4.launch

filter_field_name: z filter_limit_negative: True filter_field_name: x filter_limit_negative: True filter_field_name: y filter_limit_negative: True

中间的 “ Run a passthrough filter to clean NaNs ”段是为了去除 速腾16线的激光雷达的 NaN 点[2] 。

step2 修改 utility.h 文件

在LeGO-LOAM/LeGO-LOAM/include文件夹的 utility.h 文件中, useCloudRing false

extern const bool useCloudRing = false;

因为Velodyne的雷达单独有一个ring通道 [3],而robosense的雷达好像并没有,在代码中可以将这一功能关闭。如不修改启动的时候会报错 测试时报错:Failed to find match for field ‘ring’

运行作者提供的数据包的视频(作者提供的额数据包在github上可以下载,也可以在这个链接里面下载 (提取码:yd1o ))

LeGO-LOAM-3D 建图 Demo

2.3 运行自己的bag包

启动 LeGO-LOAM

roslaunch lego_loam mickx4.launch

运行bag ,我们自己录制的bag可以在这个链接里面下载 (提取码:yd1o )

rosbag play mick_2021-01-28-10-03-01.bag --clock --topic /rslidar_points /imu/data

点云输出在 /laser_cloud_surround Topic上 PointCloud2类型, 可以通过第三方脚本进行保存。

下面是在实验室门口外运行的视频,场景属于室外小范围场景

LeGO-LOAM-3D mapping owith MickX4 -小范围场景

在这里插入图片描述

2.4 地图保存

LeGO-LOAM 的点云地图是发布在 /laser_cloud_surround 这个话题上的,在这篇博客[7]中提供了一种方法就是记录这个topic上的数据,然后利用 pcl_ros 包进行转换。 step1: 记录话题 /laser_cloud_surround 数据,这个可以在快结束的时候录制

rosbag record -o lego-loam-out /laser_cloud_surround

step2: 把 lego-loam-out* 这个bag的话题上的数据存为pcd文件

rosrun pcl_ros bag_to_pcd lego-loam-out_2021-02-01-17-01-06.bag /laser_cloud_surround test

这时候会在你的目录下生成一个test目录,然后里面会有很多个pcd文件,选最后一个就是最新的点云地图了

在这里插入图片描述

3 大范围场景测试 3.1 路线1

第一个场景是围绕我们学校的主教楼转了一圈,大约有1公里,最后回环没有回上,我只保留了效果较好的一部分地图。地图在有结构化的场景中建图效果是比较好的,在操场边那个地方停有很多的车,其环境比较空旷。在这种情况下感觉估计的位姿就不准了,导致后面的点云有重影

roslaunch lego_loam mickx4.launch rosbag play mick_2021-02-01-15-43-14.bag --clock --topic /rslidar_points /imu/data

LeGO-LOAM-大范围场景-1KM

在这里插入图片描述

3.2 路线2

第一个场景是围绕我们学校的几个楼之间转了一圈,大约有1.5公里。这个场景中大部分都是沿着公路走的,公路旁边都是建筑物和数,整体的定位效果很好,走一圈下来位置也没差多远,估计有个2M左右。

roslaunch lego_loam mickx4.launch rosbag play mick_2021-02-01-15-22-28.bag --clock --topic /rslidar_points /imu/data

LeGO-LOAM-大范围场景-1.5KM

在这里插入图片描述

4 小结

这里运行的环境还是前几篇博客中的场景, 从我自己测试的结果来看 LeGO-LOAM 在 3D 环境下建图效果要优于 Cartographer。博客中使用的代码和launch文件可以在Github[8].下载

关于 LeGO-LOAM 的计算原理和模型可以参考博客[4] 。 此外LeGO-LOAM 还有一个升级版 LIO-SAM,效果比LeGO-LOAM更加好。

LeGO-LOAM 没有地图保存、重定位和回环检测的功能,地图保存这个比较简单,可以通过自己写一个节点保存点云,但是重定位的功能就不太容易了。

有需要 大范围场景测试 中的两个录制的bag的同学,可在评论区留下邮箱。(记得来一波点赞加关注哦)

参考资料

[1] https://github.com/RobustFieldAutonomyLab/LeGO-LOAM [2] https://blog.csdn.net/heirenlop/article/details/111475684 [3] https://blog.csdn.net/weixin_39754100/article/details/112186264 [4] https://blog.csdn.net/try_again_later/article/details/105367531 [5] https://arxiv.org/abs/2007.00258 [6] https://github.com/TixiaoShan/LIO-SAM [7] https://blog.csdn.net/qq_36396941/article/details/83048415 [8] https://github.com/RuPingCen/mick_robot/tree/master/SLAM/LeGO-LOAM/LeGO-LOAM

上一篇:开源自主导航小车MickX4(七)cartographer 室外3D建图

下一篇:开源自主导航小车MickX4(九)基于move_base 的自主导航框架

欢迎大家点赞在评论区交流讨论([email protected]) O(∩_∩)O

或者加群交流(1149897304) 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有